package hashmapexercise;
import java.util.Scanner;

import java.util.HashSet;
import java.util.Locale;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-07-31
 * Time: 22:32
 */

/**
 旧键盘 ：
 * 来源：牛客网
 *
 * 旧键盘上坏了几个键，于是在敲一段文字的时候，对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字，请你列出
 * 肯定坏掉的那些键。
 *
 * 输入描述:
 * 输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串，由字母A-Z（包括大、小写）、数字0-9、
 * 以及下划线“_”（代表空格）组成。题目保证2个字符串均非空。
 *
 *
 * 输出描述:
 * 按照发现顺序，在一行中输出坏掉的键。其中英文字母只输出大写，每个坏键只输出一次。题目保证至少有1个坏键。
 * 示例1
 * 输入
 * 7_This_is_a_test   <br/>   _hs_s_a_es
 * 输出
 * 7TI
 */
public class HashMapExercise1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String a = in.nextLine();
            String b = in.nextLine();
            func(a,b);
        }
    }

    public static void func(String str1, String str2) {
        str1 = str1.toUpperCase();
        str2 = str2.toUpperCase();

        HashSet<Character> setAct = new HashSet<>();
        for (int i = 0; i < str2.length(); i++) {
            char ch = str2.charAt(i);
            setAct.add(ch);
        }

        //在定义一个结合，把输出的坏键盘字符去重
        HashSet<Character> setPut = new HashSet<>();
        for (int i = 0; i < str1.length(); i++) {
            char ch = str1.charAt(i);
            if (!setAct.contains(ch) && !setPut.contains(ch)) {
                //放进来setPut集合，把输出的坏键盘字符去重
                setPut.add(ch);
                System.out.print(ch);
            }
        }

    }

}
